{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 循环神经元"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "单个实例的循环层的输出"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    },
    "tags": []
   },
   "source": [
    "$y_{(t)}=\\phi(W_x^Tx_{(i)}+W_y^Ty_{(t-1)}+b)$\n",
    "\n",
    "本轮输出等于本轮输入$x_{(i)}$乘以权重$W_x^T$上一轮输出$y_{(t-1)}$乘以权重$W_y^Ty$，加上偏置项$b$，\n",
    "\n",
    "即👇\n",
    "\n",
    "$y_{(t)}=\\phi([x_{(i)}y_{(t-1)}]W+b)$, \n",
    "$W= \\left[\n",
    "   \\begin{matrix}\n",
    "   W_x \\\\\n",
    "   W_y \\\\\n",
    "  \\end{matrix}\n",
    "   \\right]$\n",
    "\n",
    "   其中\n",
    "   $[x_{(i)}y_{(t-1)}]$表示水平拼接向量或矩阵，$W$是纵向拼接矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[LogicalDevice(name='/device:CPU:0', device_type='CPU'),\n",
       " LogicalDevice(name='/device:GPU:0', device_type='GPU')]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tf.config.list_logical_devices()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成数字序列方法，无需深究\n",
    "def generate_time_series(batch_size, n_steps):\n",
    "    freq1, freq2, offsets1, offsets2 = np.random.rand(4, batch_size, 1)\n",
    "    time = np.linspace(0, 1, n_steps)\n",
    "    series = 0.5 * np.sin((time - offsets1) * (freq1 *10 + 10)) # 一浪\n",
    "    series += 0.2 * np.sin((time - offsets2) * (freq2 * 20 + 20)) # 二浪\n",
    "    series += 0.1 * (np.random.rand(batch_size, n_steps) - 0.5) # 噪音\n",
    "    return series[..., np.newaxis].astype(np.float32) # 注意加一个维度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 生成10000个序列，每个序列50期（+1期作为y），序列为一维\n",
    "n_steps = 50\n",
    "series = generate_time_series(10000, n_steps + 1) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, y_train = series[:7000, :n_steps], series[:7000, -1]\n",
    "X_valid, y_valid = series[7000:9000, :n_steps], series[7000:9000, -1]\n",
    "x_test, y_test = series[9000:, :n_steps], series[9000:,-1] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1200x400 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图函数不用深究\n",
    "import matplotlib.pyplot as plt\n",
    "def plot_series(series, y=None, y_pred=None, x_label=\"$t$\", y_label=\"$x(t)$\", legend=True):\n",
    "    plt.plot(series, \".-\")\n",
    "    if y is not None:\n",
    "        plt.plot(n_steps, y, \"bo\", label=\"Target\")\n",
    "    if y_pred is not None:\n",
    "        plt.plot(n_steps, y_pred, \"rx\", markersize=10, label=\"Prediction\")\n",
    "    plt.grid(True)\n",
    "    if x_label:\n",
    "        plt.xlabel(x_label, fontsize=16)\n",
    "    if y_label:\n",
    "        plt.ylabel(y_label, fontsize=16, rotation=0)\n",
    "    plt.hlines(0, 0, 100, linewidth=1)\n",
    "    plt.axis([0, n_steps + 1, -1, 1])\n",
    "    if legend and (y or y_pred):\n",
    "        plt.legend(fontsize=14, loc=\"upper left\")\n",
    "\n",
    "fig, axes = plt.subplots(nrows=1, ncols=3, sharey=True, figsize=(12, 4))\n",
    "for col in range(3):\n",
    "    plt.sca(axes[col])\n",
    "    plot_series(X_valid[col, :, 0], y_valid[col, 0],\n",
    "                y_label=(\"$x(t)$\" if col==0 else None),\n",
    "                legend=(col == 0))\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 基准指标 baseline"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 指标一 简单方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.02196601"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred = X_valid[:, -1] # 直接对比序列最后一个值和y的均方差👇\n",
    "np.mean(keras.losses.mean_squared_error(y_valid, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.51809084],\n",
       "       [ 0.62986696],\n",
       "       [-0.33173487],\n",
       "       ...,\n",
       "       [ 0.25734296],\n",
       "       [-0.13468716],\n",
       "       [-0.03794139]], dtype=float32)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_valid[:, -1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_series(X_valid[0, :, 0], y_valid[0, 0], y_pred[0, 0])\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 指标二 线性模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.models.Sequential([\n",
    "    keras.layers.Flatten(input_shape=[50 ,1]),\n",
    "    keras.layers.Dense(1)\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7000, 50, 1)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(50, 1)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train[0,...].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(loss='mse', optimizer='Adam')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/20\n",
      "219/219 [==============================] - 3s 5ms/step - loss: 0.0529 - val_loss: 0.0266\n",
      "Epoch 2/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0178 - val_loss: 0.0126\n",
      "Epoch 3/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0101 - val_loss: 0.0089\n",
      "Epoch 4/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0077 - val_loss: 0.0076\n",
      "Epoch 5/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0067 - val_loss: 0.0067\n",
      "Epoch 6/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0060 - val_loss: 0.0059\n",
      "Epoch 7/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0055 - val_loss: 0.0055\n",
      "Epoch 8/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0051 - val_loss: 0.0052\n",
      "Epoch 9/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0048 - val_loss: 0.0049\n",
      "Epoch 10/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0045 - val_loss: 0.0046\n",
      "Epoch 11/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0044 - val_loss: 0.0044\n",
      "Epoch 12/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0042 - val_loss: 0.0043\n",
      "Epoch 13/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0041 - val_loss: 0.0042\n",
      "Epoch 14/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0040 - val_loss: 0.0041\n",
      "Epoch 15/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0039 - val_loss: 0.0040\n",
      "Epoch 16/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0038 - val_loss: 0.0039\n",
      "Epoch 17/20\n",
      "219/219 [==============================] - 1s 4ms/step - loss: 0.0038 - val_loss: 0.0038\n",
      "Epoch 18/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0037 - val_loss: 0.0037\n",
      "Epoch 19/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0036 - val_loss: 0.0041\n",
      "Epoch 20/20\n",
      "219/219 [==============================] - 1s 3ms/step - loss: 0.0036 - val_loss: 0.0036\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(X_train, y_train, epochs=20 , validation_data=(X_valid, y_valid))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 简单RNN模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.models.Sequential([\n",
    "    keras.layers.SimpleRNN(1, input_shape=[None, 1]) \n",
    "    # RNN可以处理任意长度序列，因此第一个输入维度为None\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "219/219 [==============================] - 14s 60ms/step - loss: 0.1676 - val_loss: 0.1467\n",
      "Epoch 2/10\n",
      "219/219 [==============================] - 12s 57ms/step - loss: 0.1451 - val_loss: 0.1431\n",
      "Epoch 3/10\n",
      "219/219 [==============================] - 12s 54ms/step - loss: 0.1440 - val_loss: 0.1431\n",
      "Epoch 4/10\n",
      "219/219 [==============================] - 10s 47ms/step - loss: 0.1439 - val_loss: 0.1432\n",
      "Epoch 5/10\n",
      "219/219 [==============================] - 11s 48ms/step - loss: 0.1440 - val_loss: 0.1431\n",
      "Epoch 6/10\n",
      "219/219 [==============================] - 11s 48ms/step - loss: 0.1440 - val_loss: 0.1431\n",
      "Epoch 7/10\n",
      "219/219 [==============================] - 11s 49ms/step - loss: 0.1440 - val_loss: 0.1431\n",
      "Epoch 8/10\n",
      "219/219 [==============================] - 11s 48ms/step - loss: 0.1439 - val_loss: 0.1432\n",
      "Epoch 9/10\n",
      "219/219 [==============================] - 10s 48ms/step - loss: 0.1440 - val_loss: 0.1432\n",
      "Epoch 10/10\n",
      "219/219 [==============================] - 11s 49ms/step - loss: 0.1440 - val_loss: 0.1433\n"
     ]
    }
   ],
   "source": [
    "optimizer = keras.optimizers.Adam(learning_rate=0.005)\n",
    "model.compile(loss='mse', optimizer=optimizer)\n",
    "history = model.fit(X_train, y_train, epochs=10, validation_data=(X_valid, y_valid))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "loss比简单方法要低，但比线性模型要差"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "RNN激活函数一般为双曲正切函数tanh，范围是-1到1，S型函数\n",
    "\n",
    "keras默认仅返回最终输出，若要在某一层返回一个输出，设置参数 `return_sequence = True`"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 深度RNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.Sequential([\n",
    "    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),\n",
    "    keras.layers.SimpleRNN(20), # 如果最后一层是SimpleRNN，则需要设置`返回序列`\n",
    "    keras.layers.Dense(1) # Dense层更快（一倍），也可以用SimpleRNN(1)\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      " Layer (type)                Output Shape              Param #   \n",
      "=================================================================\n",
      " simple_rnn_3 (SimpleRNN)    (None, None, 20)          440       \n",
      "                                                                 \n",
      " simple_rnn_4 (SimpleRNN)    (None, 20)                820       \n",
      "                                                                 \n",
      " dense (Dense)               (None, 1)                 21        \n",
      "                                                                 \n",
      "=================================================================\n",
      "Total params: 1,281\n",
      "Trainable params: 1,281\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "219/219 [==============================] - 27s 121ms/step - loss: 0.0085 - val_loss: 0.0039\n",
      "Epoch 2/10\n",
      "219/219 [==============================] - 26s 119ms/step - loss: 0.0036 - val_loss: 0.0037\n",
      "Epoch 3/10\n",
      "219/219 [==============================] - 37s 167ms/step - loss: 0.0034 - val_loss: 0.0037\n",
      "Epoch 4/10\n",
      "219/219 [==============================] - 37s 169ms/step - loss: 0.0033 - val_loss: 0.0038\n",
      "Epoch 5/10\n",
      "219/219 [==============================] - 36s 164ms/step - loss: 0.0034 - val_loss: 0.0040\n",
      "Epoch 6/10\n",
      "219/219 [==============================] - 36s 166ms/step - loss: 0.0034 - val_loss: 0.0034\n",
      "Epoch 7/10\n",
      "219/219 [==============================] - 34s 157ms/step - loss: 0.0034 - val_loss: 0.0033\n",
      "Epoch 8/10\n",
      "219/219 [==============================] - 28s 127ms/step - loss: 0.0033 - val_loss: 0.0037\n",
      "Epoch 9/10\n",
      "219/219 [==============================] - 24s 112ms/step - loss: 0.0032 - val_loss: 0.0035\n",
      "Epoch 10/10\n",
      "219/219 [==============================] - 24s 110ms/step - loss: 0.0032 - val_loss: 0.0033\n"
     ]
    }
   ],
   "source": [
    "model.compile(loss='mse', optimizer=keras.optimizers.Adam(0.005))\n",
    "history = model.fit(X_train, y_train, validation_data=(X_valid, y_valid), epochs=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1d60443cb50>,\n",
       " <matplotlib.lines.Line2D at 0x1d60443e230>]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "plt.grid()\n",
    "plt.plot(pd.DataFrame(history.history))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一次预测未来10步"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "series = generate_time_series(10000, n_steps + 10)\n",
    "X_train, y_train = series[:7000, :n_steps], series[:7000, -10:, 0]\n",
    "X_valid, y_valid = series[7000:9000, :n_steps], series[7000:9000, -10:, 0]\n",
    "X_test, y_test = series[9000:, :n_steps], series[9000:, -10:, 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(42)\n",
    "\n",
    "n_steps = 50\n",
    "series = generate_time_series(10000, n_steps + 10)\n",
    "X_train = series[:7000, :n_steps]\n",
    "X_valid = series[7000:9000, :n_steps]\n",
    "X_test = series[9000:, :n_steps]\n",
    "Y = np.empty((10000, n_steps, 10))\n",
    "for step_ahead in range(1, 10 + 1):\n",
    "    Y[..., step_ahead - 1] = series[..., step_ahead:step_ahead + n_steps, 0]\n",
    "Y_train = Y[:7000]\n",
    "Y_valid = Y[7000:9000]\n",
    "Y_test = Y[9000:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((10000, 50, 10), (10000, 60, 1))"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y.shape, series.shape"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "例如，现在有若干个长度为60的向量，其中每一个向量的每个值都属于一组x，每个值的后面10组值对应该组x的y，那么有50组x，50组y，最后一个x还要对应10组y，因此原数据长度60\n",
    "\n",
    "可以看出，x和y的数据是有重叠的，但不属于作弊"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((7000, 50, 1), (7000, 50, 10))"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape, Y_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/20\n",
      "219/219 [==============================] - 32s 139ms/step - loss: 0.0465 - last_time_step_mse: 0.0347 - val_loss: 0.0341 - val_last_time_step_mse: 0.0201\n",
      "Epoch 2/20\n",
      "219/219 [==============================] - 28s 130ms/step - loss: 0.0341 - last_time_step_mse: 0.0209 - val_loss: 0.0353 - val_last_time_step_mse: 0.0219\n",
      "Epoch 3/20\n",
      "219/219 [==============================] - 29s 132ms/step - loss: 0.0299 - last_time_step_mse: 0.0167 - val_loss: 0.0311 - val_last_time_step_mse: 0.0195\n",
      "Epoch 4/20\n",
      "219/219 [==============================] - 28s 129ms/step - loss: 0.0267 - last_time_step_mse: 0.0135 - val_loss: 0.0236 - val_last_time_step_mse: 0.0103\n",
      "Epoch 5/20\n",
      "219/219 [==============================] - 28s 127ms/step - loss: 0.0240 - last_time_step_mse: 0.0113 - val_loss: 0.0224 - val_last_time_step_mse: 0.0094\n",
      "Epoch 6/20\n",
      "219/219 [==============================] - 28s 127ms/step - loss: 0.0224 - last_time_step_mse: 0.0099 - val_loss: 0.0219 - val_last_time_step_mse: 0.0100\n",
      "Epoch 7/20\n",
      "219/219 [==============================] - 28s 126ms/step - loss: 0.0219 - last_time_step_mse: 0.0099 - val_loss: 0.0220 - val_last_time_step_mse: 0.0097\n",
      "Epoch 8/20\n",
      "219/219 [==============================] - 28s 127ms/step - loss: 0.0212 - last_time_step_mse: 0.0092 - val_loss: 0.0198 - val_last_time_step_mse: 0.0079\n",
      "Epoch 9/20\n",
      "219/219 [==============================] - 28s 130ms/step - loss: 0.0205 - last_time_step_mse: 0.0086 - val_loss: 0.0194 - val_last_time_step_mse: 0.0074\n",
      "Epoch 10/20\n",
      "219/219 [==============================] - 31s 142ms/step - loss: 0.0200 - last_time_step_mse: 0.0081 - val_loss: 0.0210 - val_last_time_step_mse: 0.0116\n",
      "Epoch 11/20\n",
      "219/219 [==============================] - 31s 143ms/step - loss: 0.0199 - last_time_step_mse: 0.0083 - val_loss: 0.0207 - val_last_time_step_mse: 0.0099\n",
      "Epoch 12/20\n",
      "219/219 [==============================] - 30s 136ms/step - loss: 0.0200 - last_time_step_mse: 0.0084 - val_loss: 0.0183 - val_last_time_step_mse: 0.0066\n",
      "Epoch 13/20\n",
      "219/219 [==============================] - 30s 135ms/step - loss: 0.0196 - last_time_step_mse: 0.0079 - val_loss: 0.0189 - val_last_time_step_mse: 0.0074\n",
      "Epoch 14/20\n",
      "219/219 [==============================] - 29s 133ms/step - loss: 0.0190 - last_time_step_mse: 0.0071 - val_loss: 0.0196 - val_last_time_step_mse: 0.0091\n",
      "Epoch 15/20\n",
      "219/219 [==============================] - 29s 132ms/step - loss: 0.0189 - last_time_step_mse: 0.0072 - val_loss: 0.0184 - val_last_time_step_mse: 0.0072\n",
      "Epoch 16/20\n",
      "219/219 [==============================] - 29s 133ms/step - loss: 0.0188 - last_time_step_mse: 0.0071 - val_loss: 0.0183 - val_last_time_step_mse: 0.0072\n",
      "Epoch 17/20\n",
      "219/219 [==============================] - 29s 132ms/step - loss: 0.0189 - last_time_step_mse: 0.0073 - val_loss: 0.0180 - val_last_time_step_mse: 0.0073\n",
      "Epoch 18/20\n",
      "219/219 [==============================] - 29s 133ms/step - loss: 0.0184 - last_time_step_mse: 0.0070 - val_loss: 0.0183 - val_last_time_step_mse: 0.0072\n",
      "Epoch 19/20\n",
      "219/219 [==============================] - 30s 136ms/step - loss: 0.0186 - last_time_step_mse: 0.0071 - val_loss: 0.0184 - val_last_time_step_mse: 0.0076\n",
      "Epoch 20/20\n",
      "219/219 [==============================] - 29s 132ms/step - loss: 0.0184 - last_time_step_mse: 0.0072 - val_loss: 0.0190 - val_last_time_step_mse: 0.0078\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(42)\n",
    "tf.random.set_seed(42)\n",
    "\n",
    "model = keras.models.Sequential([\n",
    "    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),\n",
    "    keras.layers.SimpleRNN(20, return_sequences=True),\n",
    "    keras.layers.TimeDistributed(keras.layers.Dense(10))\n",
    "])\n",
    "'''\n",
    "# 最后也可以是直接Dense(10),如下,但所需要的数据维度不同,而且是用前面所有步长预测最后10个步长\n",
    "  然而如果用keras.layers.TimeDistributed(),则每一步都用于训练和计算误差\n",
    "  注：这种方法等于一维卷积\n",
    "  TimeDistributed(Dense(10)) = Conv1D(n, filter_size=1)\n",
    "\n",
    "model = keras.models.Sequential([\n",
    "    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),\n",
    "    keras.layers.SimpleRNN(20),\n",
    "    keras.layers.Dense(10)\n",
    "])\n",
    "'''\n",
    "def last_time_step_mse(Y_true, Y_pred):\n",
    "    return keras.metrics.mean_squared_error(Y_true[:, -1], Y_pred[:, -1])\n",
    "\n",
    "model.compile(loss=\"mse\", optimizer=keras.optimizers.Adam(learning_rate=0.01), \n",
    "              metrics=[last_time_step_mse])\n",
    "history = model.fit(X_train, Y_train, epochs=20,\n",
    "                    validation_data=(X_valid, Y_valid))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## LSTM和GRU"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.models.Sequential([\n",
    "    keras.layers.LSTM(20, return_sequences=True, input_shape=[None, 1]),\n",
    "    keras.layers.LSTM(20, return_sequences=True),\n",
    "    keras.layers.TimeDistributed(keras.layers.Dense(10))\n",
    "])\n",
    "# GRU单元： keras.layers.GRU()\n",
    "\n",
    "def last_time_step_mse(Y_true, Y_pred):\n",
    "    return keras.metrics.mean_squared_error(Y_true[:, -1], Y_pred[:, -1])\n",
    "\n",
    "model.compile(loss=\"mse\", optimizer=keras.optimizers.Adam(learning_rate=0.01), \n",
    "              metrics=[last_time_step_mse])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "219/219 [==============================] - 4s 19ms/step - loss: 0.0146 - last_time_step_mse: 0.0037 - val_loss: 0.0156 - val_last_time_step_mse: 0.0053\n",
      "Epoch 2/10\n",
      "219/219 [==============================] - 4s 19ms/step - loss: 0.0143 - last_time_step_mse: 0.0035 - val_loss: 0.0139 - val_last_time_step_mse: 0.0033\n",
      "Epoch 3/10\n",
      "219/219 [==============================] - 4s 18ms/step - loss: 0.0141 - last_time_step_mse: 0.0034 - val_loss: 0.0137 - val_last_time_step_mse: 0.0031\n",
      "Epoch 4/10\n",
      "219/219 [==============================] - 4s 17ms/step - loss: 0.0140 - last_time_step_mse: 0.0033 - val_loss: 0.0140 - val_last_time_step_mse: 0.0033\n",
      "Epoch 5/10\n",
      "219/219 [==============================] - 4s 16ms/step - loss: 0.0139 - last_time_step_mse: 0.0032 - val_loss: 0.0138 - val_last_time_step_mse: 0.0030\n",
      "Epoch 6/10\n",
      "219/219 [==============================] - 4s 16ms/step - loss: 0.0138 - last_time_step_mse: 0.0032 - val_loss: 0.0134 - val_last_time_step_mse: 0.0029\n",
      "Epoch 7/10\n",
      "219/219 [==============================] - 4s 16ms/step - loss: 0.0136 - last_time_step_mse: 0.0030 - val_loss: 0.0130 - val_last_time_step_mse: 0.0028\n",
      "Epoch 8/10\n",
      "219/219 [==============================] - 4s 16ms/step - loss: 0.0134 - last_time_step_mse: 0.0030 - val_loss: 0.0132 - val_last_time_step_mse: 0.0028\n",
      "Epoch 9/10\n",
      "219/219 [==============================] - 4s 16ms/step - loss: 0.0134 - last_time_step_mse: 0.0029 - val_loss: 0.0135 - val_last_time_step_mse: 0.0037\n",
      "Epoch 10/10\n",
      "219/219 [==============================] - 4s 16ms/step - loss: 0.0134 - last_time_step_mse: 0.0030 - val_loss: 0.0129 - val_last_time_step_mse: 0.0027\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(X_train, Y_train, validation_data=(X_valid, Y_valid), epochs=10)\n",
    "# 训练速度要快得多"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一维卷积"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.models.Sequential([\n",
    "    keras.layers.Conv1D(filters=20, kernel_size=4, strides=2, padding='valid',\n",
    "                        input_shape=[None, 1]),\n",
    "    keras.layers.GRU(20, return_sequences=True),\n",
    "    keras.layers.GRU(20, return_sequences=True),\n",
    "    keras.layers.TimeDistributed(keras.layers.Dense(10))\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/20\n",
      "219/219 [==============================] - 21s 12ms/step - loss: 0.0692 - last_time_step_mse: 0.0615 - val_loss: 0.0471 - val_last_time_step_mse: 0.0396\n",
      "Epoch 2/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0389 - last_time_step_mse: 0.0312 - val_loss: 0.0335 - val_last_time_step_mse: 0.0248\n",
      "Epoch 3/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0314 - last_time_step_mse: 0.0229 - val_loss: 0.0305 - val_last_time_step_mse: 0.0219\n",
      "Epoch 4/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0276 - last_time_step_mse: 0.0180 - val_loss: 0.0258 - val_last_time_step_mse: 0.0149\n",
      "Epoch 5/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0248 - last_time_step_mse: 0.0142 - val_loss: 0.0238 - val_last_time_step_mse: 0.0126\n",
      "Epoch 6/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0234 - last_time_step_mse: 0.0124 - val_loss: 0.0240 - val_last_time_step_mse: 0.0130\n",
      "Epoch 7/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0225 - last_time_step_mse: 0.0114 - val_loss: 0.0222 - val_last_time_step_mse: 0.0111\n",
      "Epoch 8/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0218 - last_time_step_mse: 0.0107 - val_loss: 0.0219 - val_last_time_step_mse: 0.0108\n",
      "Epoch 9/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0214 - last_time_step_mse: 0.0104 - val_loss: 0.0214 - val_last_time_step_mse: 0.0106\n",
      "Epoch 10/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0209 - last_time_step_mse: 0.0100 - val_loss: 0.0208 - val_last_time_step_mse: 0.0098\n",
      "Epoch 11/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0207 - last_time_step_mse: 0.0098 - val_loss: 0.0206 - val_last_time_step_mse: 0.0097\n",
      "Epoch 12/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0205 - last_time_step_mse: 0.0097 - val_loss: 0.0204 - val_last_time_step_mse: 0.0098\n",
      "Epoch 13/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0202 - last_time_step_mse: 0.0095 - val_loss: 0.0203 - val_last_time_step_mse: 0.0096\n",
      "Epoch 14/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0200 - last_time_step_mse: 0.0093 - val_loss: 0.0199 - val_last_time_step_mse: 0.0093\n",
      "Epoch 15/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0199 - last_time_step_mse: 0.0093 - val_loss: 0.0197 - val_last_time_step_mse: 0.0093\n",
      "Epoch 16/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0197 - last_time_step_mse: 0.0092 - val_loss: 0.0197 - val_last_time_step_mse: 0.0092\n",
      "Epoch 17/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0196 - last_time_step_mse: 0.0091 - val_loss: 0.0195 - val_last_time_step_mse: 0.0090\n",
      "Epoch 18/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0193 - last_time_step_mse: 0.0089 - val_loss: 0.0193 - val_last_time_step_mse: 0.0089\n",
      "Epoch 19/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0192 - last_time_step_mse: 0.0088 - val_loss: 0.0191 - val_last_time_step_mse: 0.0088\n",
      "Epoch 20/20\n",
      "219/219 [==============================] - 3s 12ms/step - loss: 0.0191 - last_time_step_mse: 0.0087 - val_loss: 0.0192 - val_last_time_step_mse: 0.0090\n"
     ]
    }
   ],
   "source": [
    "model.compile(loss='mse', optimizer='Adam', metrics=[last_time_step_mse])\n",
    "history = model.fit(X_train, Y_train[:,3::2], epochs=20, \n",
    "                    validation_data=(X_valid, Y_valid[:,3::2]))\n",
    "# 卷积核步长为2，且大小为4，因此Y从第四个数开始，步长为2（没真正搞懂）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
